Forum.prototype = new DOMAware();
Forum.prototype.constructor = Forum;
Forum.prototype.utente = null;
Forum.prototype.id = null;
Forum.prototype.name = null;
Forum.prototype.edizione = null;
Forum.prototype._unReadMessages = null;
Forum.prototype.color = null;
Forum.prototype.url = null;

function Forum(utente, id, name, edizione) {
    // chiamata al metodo super
    DOMAware.call(this);

    this.utente = utente;
    this.id = id;
    this.name = name;
    this.edizione = edizione;
    this._unReadMessages = null;


    this.getId = function() {
        return this.id;
    };
    this.setColor = function(color) {
        this.color = color;
    };
    this.getName = function() {
        return this.name;
    };
    this.getEdizione = function() {
        return this.edizione;
    };
    this.getColor = function() {
        return this.color;
    };
    this.getUtente = function() {
        return this.utente;
    };
    this.getURL = function() {
        return this.url;
    };
    this.setURL = function(url) {
        this.url = url;
    };
    this.getUnReadMessages = function() {
        if (this._unReadMessages != null) {
            return this._unReadMessages;
        }
        var dom = this.getDOM();
        var msgDaLeggere = 0;
        var msgTotali = 0;
        this._unReadMessages = 0;
        try {
            if (this.utente.isOnline()) {

                var tableIndex = this.utente.isTutor() ? 6 : 8;  // tutor e studenti hanno un layout diverso
                SSRIQuery("table[width='100%']:eq(" + tableIndex + ") td", dom).filter(function() {
                    return this.textContent.match(/^\d+$/g) && this.nextSibling != null;
                }).each(function(index, value) {
                    var num = Number(value.textContent);

                    if (!isNaN(num)) {
                        if (index % 2 == 0) {
                            msgTotali += num;
                        } else {
                            msgDaLeggere += num;
                        }
                    }
                });

            }
        } catch (err) {
            Util.setStatusMessage('Error: ' + err);
        }
        this._unReadMessages = msgDaLeggere;
        return this._unReadMessages;
    };

    this.getName = function() {
        return name;
    };

}
//Forum.Override(DOMAware, 'getAddress');
Forum.prototype.getAddress = function() {
    return ForumAddressResolver.getAddress(this.getUtente(), this);
};
Forum.prototype.getUId = function() {
    if (this.getId() == null) return null;
    if (this.getEdizione() == null) return null;
    return this.getId() + this.getEdizione();
};







